package com.blueocean_health.care.management.service;

import java.util.List;
import java.util.Map;

import com.blueocean_health.care.management.domain.base.SysResult;
import com.blueocean_health.care.management.domain.dto.RoleDto;
import com.blueocean_health.care.management.domain.dto.RoleListDto;
import com.blueocean_health.care.management.domain.vo.RoleVo;

/**
* 角色Service 
* @author huyanqiu
* @date 2018年3月23日 下午2:51:26
* @version 版本号：1.0
*/
public interface RoleService {

	/**
	 * 创建角色
	 * @param roleVo
	 * @return
	 */
	SysResult add(RoleVo roleVo);

	/**
	 * 编辑角色
	 * @param roleVo
	 * @return
	 */
	SysResult modify(RoleVo roleVo);

	/**
	 * 删除角色
	 * @param id
	 * @return
	 */
	SysResult delete(Integer id);

	/**
	 * 获取角色详情
	 * @param id
	 * @return
	 */
	RoleDto query(Integer id, String type);

	/**
	 * 启用禁用角色 
	 * @param id
	 * @param status
	 * @return
	 */
	SysResult status(Integer id, Integer status);

	/**
	 * 角色列表 
	 * @param roleListDto
	 * @return
	 */
	SysResult list(RoleListDto roleListDto);
	
	/**
	 * 批量修改角色启用/禁用状态(主要用于启用/禁用组织下的所有角色)
	 * @param code
	 * @param status
	 */
	void batchModifyRoleStatus(String code, String status);
	
	/**
	 * 查询某个用户对应的所有角色(用户模块查看角色)
	 * @param paramsMap
	 * @return
	 */
	public List<Map<String, String>> findRoleByUserId(Map<String, Object> paramsMap);

	/**
	 * 查询登录选择身份组织/项目列表
	 * @param paramsMap
	 * @return
	 */
	List<Map<String, String>> findIdentityByUserId(Map<String, Object> paramsMap);
}
